package com.shujia.mvc2.service;

import com.shujia.mvc2.User;
import com.shujia.mvc2.dao.UserDao;
import com.shujia.mvc2.dao.UserMysqlDao;

/**
 * 业务层：业务逻辑
 * <p>
 * 实现登录、注册的业务逻辑
 */
public class UserServiceIpm1 implements UserService {

    private UserDao demo3Dao = new UserMysqlDao();

    /**
     * 登录的方法
     */
    public String login(String username, String password) {

        /*
         *判断用户名和密码是否正确
         */


        //1、调用数据库持久层的方法，通过用户名查询用户
        User user = demo3Dao.queryUserByUsername(username);

        //2、判断用户名是否存在
        if (user == null) {
            return "用户不存在";
        }

        //3、判断密码是否正确
        if (password == null || !password.equals(user.getPassword())) {
            return "密码错误，请重新登录";
        }

        //4、返回
        return "登录成功";
    }


    /**
     * 注册
     */
    public String register(String username, String password, String password1) {

        //1、判断密码是否一致
        if (password == null || !password.equals(password1)) {
            return "密码不一致";
        }

        //2、判断用户名是否存在
        User user = demo3Dao.queryUserByUsername(username);
        if (user != null) {
            return "用户已存在";
        }

        //3、将新用户的数据插入到数据库
        User newUser = new User(username, password);
        demo3Dao.insert(newUser);

        return "注册成功";
    }

    /**
     * 修改密码的方法
     */
    public String modifyPassword(String username, String oldPassword, String newpassword, String nowpassword) {

        //1、判断原用户名和密码是否正确
        User user = demo3Dao.queryUserByUsername(username);

        //判断用户名是否存在
        if (user == null) {
            return "用户不存在";
        }

        //判断原密码是否正确
        if (!oldPassword.equals(user.getPassword())) {
            return "原密码错误";
        }

        //2、判断新密码是否一致
        if (newpassword == null || !newpassword.equals(nowpassword)) {
            return "新密码不一致";
        }

        //3、修改密码
        demo3Dao.updatePasswordByUsername(username, newpassword);

        //4、返回结果
        return "密码修改成功";
    }

}
